package com.jari.lg.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ParkingInoutRecordDayExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ParkingInoutRecordDayExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andPlatenumberIsNull() {
            addCriterion("plateNumber is null");
            return (Criteria) this;
        }

        public Criteria andPlatenumberIsNotNull() {
            addCriterion("plateNumber is not null");
            return (Criteria) this;
        }

        public Criteria andPlatenumberEqualTo(String value) {
            addCriterion("plateNumber =", value, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberNotEqualTo(String value) {
            addCriterion("plateNumber <>", value, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberGreaterThan(String value) {
            addCriterion("plateNumber >", value, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberGreaterThanOrEqualTo(String value) {
            addCriterion("plateNumber >=", value, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberLessThan(String value) {
            addCriterion("plateNumber <", value, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberLessThanOrEqualTo(String value) {
            addCriterion("plateNumber <=", value, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberLike(String value) {
            addCriterion("plateNumber like", value, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberNotLike(String value) {
            addCriterion("plateNumber not like", value, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberIn(List<String> values) {
            addCriterion("plateNumber in", values, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberNotIn(List<String> values) {
            addCriterion("plateNumber not in", values, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberBetween(String value1, String value2) {
            addCriterion("plateNumber between", value1, value2, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatenumberNotBetween(String value1, String value2) {
            addCriterion("plateNumber not between", value1, value2, "platenumber");
            return (Criteria) this;
        }

        public Criteria andPlatetypeIsNull() {
            addCriterion("plateType is null");
            return (Criteria) this;
        }

        public Criteria andPlatetypeIsNotNull() {
            addCriterion("plateType is not null");
            return (Criteria) this;
        }

        public Criteria andPlatetypeEqualTo(String value) {
            addCriterion("plateType =", value, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeNotEqualTo(String value) {
            addCriterion("plateType <>", value, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeGreaterThan(String value) {
            addCriterion("plateType >", value, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeGreaterThanOrEqualTo(String value) {
            addCriterion("plateType >=", value, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeLessThan(String value) {
            addCriterion("plateType <", value, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeLessThanOrEqualTo(String value) {
            addCriterion("plateType <=", value, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeLike(String value) {
            addCriterion("plateType like", value, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeNotLike(String value) {
            addCriterion("plateType not like", value, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeIn(List<String> values) {
            addCriterion("plateType in", values, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeNotIn(List<String> values) {
            addCriterion("plateType not in", values, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeBetween(String value1, String value2) {
            addCriterion("plateType between", value1, value2, "platetype");
            return (Criteria) this;
        }

        public Criteria andPlatetypeNotBetween(String value1, String value2) {
            addCriterion("plateType not between", value1, value2, "platetype");
            return (Criteria) this;
        }

        public Criteria andIndatetimeIsNull() {
            addCriterion("inDatetime is null");
            return (Criteria) this;
        }

        public Criteria andIndatetimeIsNotNull() {
            addCriterion("inDatetime is not null");
            return (Criteria) this;
        }

        public Criteria andIndatetimeEqualTo(Date value) {
            addCriterion("inDatetime =", value, "indatetime");
            return (Criteria) this;
        }

        public Criteria andIndatetimeNotEqualTo(Date value) {
            addCriterion("inDatetime <>", value, "indatetime");
            return (Criteria) this;
        }

        public Criteria andIndatetimeGreaterThan(Date value) {
            addCriterion("inDatetime >", value, "indatetime");
            return (Criteria) this;
        }

        public Criteria andIndatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("inDatetime >=", value, "indatetime");
            return (Criteria) this;
        }

        public Criteria andIndatetimeLessThan(Date value) {
            addCriterion("inDatetime <", value, "indatetime");
            return (Criteria) this;
        }

        public Criteria andIndatetimeLessThanOrEqualTo(Date value) {
            addCriterion("inDatetime <=", value, "indatetime");
            return (Criteria) this;
        }

        public Criteria andIndatetimeIn(List<Date> values) {
            addCriterion("inDatetime in", values, "indatetime");
            return (Criteria) this;
        }

        public Criteria andIndatetimeNotIn(List<Date> values) {
            addCriterion("inDatetime not in", values, "indatetime");
            return (Criteria) this;
        }

        public Criteria andIndatetimeBetween(Date value1, Date value2) {
            addCriterion("inDatetime between", value1, value2, "indatetime");
            return (Criteria) this;
        }

        public Criteria andIndatetimeNotBetween(Date value1, Date value2) {
            addCriterion("inDatetime not between", value1, value2, "indatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeIsNull() {
            addCriterion("outDatetime is null");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeIsNotNull() {
            addCriterion("outDatetime is not null");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeEqualTo(Date value) {
            addCriterion("outDatetime =", value, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeNotEqualTo(Date value) {
            addCriterion("outDatetime <>", value, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeGreaterThan(Date value) {
            addCriterion("outDatetime >", value, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("outDatetime >=", value, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeLessThan(Date value) {
            addCriterion("outDatetime <", value, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeLessThanOrEqualTo(Date value) {
            addCriterion("outDatetime <=", value, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeIn(List<Date> values) {
            addCriterion("outDatetime in", values, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeNotIn(List<Date> values) {
            addCriterion("outDatetime not in", values, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeBetween(Date value1, Date value2) {
            addCriterion("outDatetime between", value1, value2, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andOutdatetimeNotBetween(Date value1, Date value2) {
            addCriterion("outDatetime not between", value1, value2, "outdatetime");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(Double value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(Double value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(Double value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(Double value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(Double value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(Double value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<Double> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<Double> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(Double value1, Double value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(Double value1, Double value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andDatetimeIsNull() {
            addCriterion("datetime is null");
            return (Criteria) this;
        }

        public Criteria andDatetimeIsNotNull() {
            addCriterion("datetime is not null");
            return (Criteria) this;
        }

        public Criteria andDatetimeEqualTo(Date value) {
            addCriterion("datetime =", value, "datetime");
            return (Criteria) this;
        }

        public Criteria andDatetimeNotEqualTo(Date value) {
            addCriterion("datetime <>", value, "datetime");
            return (Criteria) this;
        }

        public Criteria andDatetimeGreaterThan(Date value) {
            addCriterion("datetime >", value, "datetime");
            return (Criteria) this;
        }

        public Criteria andDatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("datetime >=", value, "datetime");
            return (Criteria) this;
        }

        public Criteria andDatetimeLessThan(Date value) {
            addCriterion("datetime <", value, "datetime");
            return (Criteria) this;
        }

        public Criteria andDatetimeLessThanOrEqualTo(Date value) {
            addCriterion("datetime <=", value, "datetime");
            return (Criteria) this;
        }

        public Criteria andDatetimeIn(List<Date> values) {
            addCriterion("datetime in", values, "datetime");
            return (Criteria) this;
        }

        public Criteria andDatetimeNotIn(List<Date> values) {
            addCriterion("datetime not in", values, "datetime");
            return (Criteria) this;
        }

        public Criteria andDatetimeBetween(Date value1, Date value2) {
            addCriterion("datetime between", value1, value2, "datetime");
            return (Criteria) this;
        }

        public Criteria andDatetimeNotBetween(Date value1, Date value2) {
            addCriterion("datetime not between", value1, value2, "datetime");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeIsNull() {
            addCriterion("parkingLotCode is null");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeIsNotNull() {
            addCriterion("parkingLotCode is not null");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeEqualTo(String value) {
            addCriterion("parkingLotCode =", value, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeNotEqualTo(String value) {
            addCriterion("parkingLotCode <>", value, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeGreaterThan(String value) {
            addCriterion("parkingLotCode >", value, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeGreaterThanOrEqualTo(String value) {
            addCriterion("parkingLotCode >=", value, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeLessThan(String value) {
            addCriterion("parkingLotCode <", value, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeLessThanOrEqualTo(String value) {
            addCriterion("parkingLotCode <=", value, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeLike(String value) {
            addCriterion("parkingLotCode like", value, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeNotLike(String value) {
            addCriterion("parkingLotCode not like", value, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeIn(List<String> values) {
            addCriterion("parkingLotCode in", values, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeNotIn(List<String> values) {
            addCriterion("parkingLotCode not in", values, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeBetween(String value1, String value2) {
            addCriterion("parkingLotCode between", value1, value2, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotcodeNotBetween(String value1, String value2) {
            addCriterion("parkingLotCode not between", value1, value2, "parkinglotcode");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameIsNull() {
            addCriterion("parkingLotName is null");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameIsNotNull() {
            addCriterion("parkingLotName is not null");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameEqualTo(String value) {
            addCriterion("parkingLotName =", value, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameNotEqualTo(String value) {
            addCriterion("parkingLotName <>", value, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameGreaterThan(String value) {
            addCriterion("parkingLotName >", value, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameGreaterThanOrEqualTo(String value) {
            addCriterion("parkingLotName >=", value, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameLessThan(String value) {
            addCriterion("parkingLotName <", value, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameLessThanOrEqualTo(String value) {
            addCriterion("parkingLotName <=", value, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameLike(String value) {
            addCriterion("parkingLotName like", value, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameNotLike(String value) {
            addCriterion("parkingLotName not like", value, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameIn(List<String> values) {
            addCriterion("parkingLotName in", values, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameNotIn(List<String> values) {
            addCriterion("parkingLotName not in", values, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameBetween(String value1, String value2) {
            addCriterion("parkingLotName between", value1, value2, "parkinglotname");
            return (Criteria) this;
        }

        public Criteria andParkinglotnameNotBetween(String value1, String value2) {
            addCriterion("parkingLotName not between", value1, value2, "parkinglotname");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}